/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.edu.gimnasioInteligente.beans;

import co.uniminuto.edu.gimnasioInteligente.entities.Pago;
import co.uniminuto.edu.gimnasioInteligente.entities.Usuario;
import co.uniminuto.edu.gimnasioInteligente.session.PagoFacade;
import co.uniminuto.edu.gimnasioInteligente.session.UsuarioFacade;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.model.SelectItem;

/**
 *
 * @author diegoalejandro
 */
@ManagedBean(name = "informePagosBean")
public class informePagosBean {

    @EJB
    UsuarioFacade myUsuarioSession;
    @EJB
    PagoFacade myPagoFacadeSession;
    private List<Usuario> usuariosList;
    private List<SelectItem> usuariosSelectItem;
    private float VALOR_MENSUALIDAD = 50000;
    private String tipoReporte;
    private Integer deportistaSeleccionado;
    private List<Pago> pagosIndividualesList;
    private List<Pago> pagosGeneralList;

    /**
     * Creates a new instance of informePagosBean
     */
    public informePagosBean() {
    }

    public Integer getDeportistaSeleccionado() {
        return deportistaSeleccionado;
    }

    public void setDeportistaSeleccionado(Integer deportistaSeleccionado) {
        this.deportistaSeleccionado = deportistaSeleccionado;
    }

    public List<Pago> getPagosList() {
        return pagosIndividualesList;
    }

    public void setPagosList(List<Pago> pagosList) {
        this.pagosIndividualesList = pagosList;
    }

    public List<Pago> getPagosIndividualesList() {
        return pagosIndividualesList;
    }

    public void setPagosIndividualesList(List<Pago> pagosIndividualesList) {
        this.pagosIndividualesList = pagosIndividualesList;
    }

    public List<Pago> getPagosGeneralList() {
        return pagosGeneralList;
    }

    public void setPagosGeneralList(List<Pago> pagosGeneralList) {
        this.pagosGeneralList = pagosGeneralList;
    }

    public float getVALOR_MENSUALIDAD() {
        return VALOR_MENSUALIDAD;
    }

    public void setVALOR_MENSUALIDAD(float VALOR_MENSUALIDAD) {
        this.VALOR_MENSUALIDAD = VALOR_MENSUALIDAD;
    }

    public String getTipoReporte() {
        return tipoReporte;
    }

    public void setTipoReporte(String tipoReporte) {
        this.tipoReporte = tipoReporte;
    }

    public String getFecha() {
        Date ahora = new Date();
        SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy");
        return formateador.format(ahora);
    }

    public float getValorMensualidad() {
        return VALOR_MENSUALIDAD;
    }

    public void setValorMensualidad(float valorMensualidad) {
        this.VALOR_MENSUALIDAD = valorMensualidad;
    }

    public List<Usuario> getUsuariosList() {
        usuariosList = new ArrayList<>();
        usuariosList = myUsuarioSession.findAll();
        return usuariosList;
    }

    public void setUsuariosList(List<Usuario> usuariosList) {
        this.usuariosList = usuariosList;
    }

    public List<SelectItem> getUsuariosSelectItem() {
        usuariosSelectItem = new ArrayList<>();
        for (Usuario usuario : getUsuariosList()) {
            usuariosSelectItem.add(new SelectItem(usuario.getIdUsuario(),
                    usuario.getNombres() + " " + usuario.getApellidos()));
        }
        return usuariosSelectItem;
    }

    public void setUsuariosSelectItem(List<SelectItem> usuariosSelectItem) {
        this.usuariosSelectItem = usuariosSelectItem;
    }

    public void generarReporte() {
        if (tipoReporte.equalsIgnoreCase("A")) {
            Usuario usuario = new Usuario();
            System.err.println("Deportista: " + deportistaSeleccionado);
            usuario = myUsuarioSession.find(deportistaSeleccionado);  
            setPagosIndividualesList( myPagoFacadeSession.getPagosByDeportista(usuario));
            System.err.println("Cantdidad: " + pagosIndividualesList.size());
        }else{
            setPagosGeneralList( myPagoFacadeSession.findAll());
            System.err.println("total: " + pagosGeneralList.size());
        }
    }
    
    
}
